package com.BookManage;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws IOException {
        SequenceList<Book> bookList = new SequenceList<>();
        Book book1 = new Book("1234567891231", "老人与海", "海明威", "华中出版社", "2003.11.2", 100);
        Book book2 = new Book("1234567891232", "朝花夕拾", "海明威", "华中出版社", "2003.11.2", 100);
        Scanner sc=new Scanner(System.in);
        boolean flag=true;
        while (flag){
            System.out.println("欢迎来到图书管理系统你可以享受以下权限：\n1，查询图书信息 2，添加图书信息 3，插入图书信息 4，删除图书信息 5，查询指定位置图书信息 6，更新图书信息 7，导出到文件中 8.导入文件 9，退出");
            int vip;
            while (true) {
                if (sc.hasNextInt()) {
                    vip = sc.nextInt();
                    break;
                } else {
                    System.out.println("你输入的不是数字，请重新输入：");
                    //不写就是死循环
                    sc.next();
                }
            }
            switch (vip){
                case 1:
                    bookList.getAll();
                    System.out.println();
                    break;
                case 2:
                    System.out.println("=============添加图书==============");
                    System.out.println("请输入如图书的ISBN（13位数字）：");
                    String ISBN=sc.next();
                    System.out.println("请输入书名：");
                    String name=sc.next();
                    System.out.println("请输入作者名：");
                    String author=sc.next();
                    System.out.println("请输入出版社：");
                    String address = sc.next();
                    System.out.println("请输入出版日期：");
                    String date=sc.next();
                    System.out.println("请输入价格：");
                    Integer price=sc.nextInt();
                    Book book=new Book(ISBN,name,author,address,date,price);
                    bookList.SaveBook(book);
                    break;
                case 3:
                    System.out.println("==============插入图书信息=================");
                    System.out.println("请输入如图书的ISBN（13位数字）：");
                    String Ibsn=sc.next();
                    System.out.println("请输入书名：");
                    String Name=sc.next();
                    System.out.println("请输入作者名：");
                    String Author=sc.next();
                    System.out.println("请输入出版社：");
                    String Address = sc.next();
                    System.out.println("请输入出版日期：");
                    String Date=sc.next();
                    System.out.println("请输入价格：");
                    Integer Price=sc.nextInt();
                    System.out.println("请输入添加位置：");
                    int index=sc.nextInt();
                    Book book9=new Book(Ibsn,Name,Author,Address,Date,Price);
                    if(bookList.InsertBook(book9,index)){
                        System.out.println("插入成功！");
                    }else{
                        System.out.println("插入失败！");
                    }
                    break;
                case 4:
                    System.out.println("=====================删除操作=============================");
                    System.out.println("请输入如图书的ISBN（13位数字）：");
                    String str=sc.next();
                    Book book_3=new Book(str);
                    if(bookList.DeleteBook(book_3)){
                        System.out.println("删除成功！");
                    }else {
                        System.out.println("删除失败！");
                    }
                    break;
                case 5:
                    System.out.println("======================查询指定位置的图书=========================");
                    System.out.println("请输入图书位置：");
                    int s=sc.nextInt();
                    bookList.searchBook(s);
                    break;
                case 6:
                    System.out.println("=======================更改图书信息=============================");
                    System.out.println("请输入如图书的ISBN（13位数字）：");
                    String I=sc.next();
                    System.out.println("请输入书名：");
                    String N=sc.next();
                    System.out.println("请输入作者名：");
                    String A=sc.next();
                    System.out.println("请输入出版社：");
                    String AD = sc.next();
                    System.out.println("请输入出版日期：");
                    String D=sc.next();
                    System.out.println("请输入价格：");
                    Integer P=sc.nextInt();
                    Book book_2=new Book(I,N,A,AD,D,P);
                    System.out.println("请输入插入的位置：");
                    int add=sc.nextInt();
                    if(bookList.updateBook(book_2,add)){
                        System.out.println("删除成功！");
                    }else{
                        System.out.println("删除失败！");
                    }
                    break;
                case 7:
                    System.out.println("====================写入文件========================");
                    //1.创建对象并关联本地文件
                    FileWriter fwt = new FileWriter("D:\\Aaa.txt");
                    //2.写入数据 read(String str)
                    for (int i = 1; i <= bookList.size(); i++) {
                        fwt.write(bookList.searchBook(i).toString());
                    }
                    //3.释放资源
                    fwt.close();
                    break;
                case 8:
                    System.out.println("======================读取文件=======================");
                    FileReader frd = new FileReader("D:\\Aaa.txt");
                    //2.读取数据 read()
                    int ch;
                    while ((ch = frd.read()) != -1) {
                        //默认显示的是十进制数据，查看中文需要进行char强转
                        System.out.print((char)ch);
                    }
                    //3.释放资源
                    frd.close();
                    break;
                case 9:
                    flag=false;
                    System.out.println("退出程序");
                    break;
                default:
                    System.out.println("你输入的是无效数字。");
            }
        }
    }
}
